#include <stdio.h>
#include <stdlib.h>
#include "head.h"

// 字符 输出
// 字符串 输出
// 数字如何输出     数字转字符串

/*

宏函数   错误检查
#define ERRLOG(x) do \
{ \
    printf("%s 文件:%s 行号:%d\n" , x , __FILE__ , __LINE__ ); \
} while (0);

eg:str 为 空 文件:01_内联函数.c 行号:15
*/
char * int_to_str(char * str , int val)
{
    //只要是指针就需要先判断是否为空
    if (NULL == str)
    {
        ERRLOG("str 为 空");
        // printf("str 为 空"); // 能显示文件 能显示行号
        return NULL;
    }

    // 1、拆数字
    
    // 1.1 数组
    int arr[8] = {0};

    int len = 0;
    for ( ; 0 != val ; len++)
    {
        arr[len] = val % 10;
        val /= 10;
    }

    // 2、组装
    for (int i = len - 1 , j = 0 ; i >= 0 ; i-- , j++)
    {
        str[j] = arr[i] + '0';
    }
    
    return str;

}

int main(int argc, char const *argv[])
{
    char ch = 'v';
    char str[123]={0};

    putchar(ch);
    puts(str);
    
    puts(int_to_str(NULL , 123123));


    float f1 = 10.0;
    double d1 = 10.0;

    Type_test(123);
    Type_test(f1);
    Type_test(d1);
    Type_test(ch);

    return 0;
}